package com.zmc.lostfound.post.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zmc.lostfound.common.utils.Result;
import com.zmc.lostfound.post.entity.PostStarEntity;
import com.zmc.lostfound.post.vo.PostStarSaveVO;

import java.util.List;

/**
 * @author ZMC, gxc
 * description 帖子&用户收藏业务接口
 * @email 2869581855@qq.com
 * @date 2023-07-05 15:49:44
 */
public interface PostStarService extends IService<PostStarEntity> {

    /**
     * 按主键id查询帖子&收藏信息
     *
     * @param id 主键id
     * @return PostStarEntity
     */
    PostStarEntity queryInfoById(Long id);

    /**
     * 按帖子id查询帖子&收藏信息
     *
     * @param postId 帖子id
     * @return List<Long> 用户ids
     */
    List<Long> queryInfoByPostId(Long postId);

    /**
     * 按用户id查询帖子&收藏信息
     *
     * @param userId 用户id
     * @return List<Long> 帖子ids
     */
    List<Long> queryInfoByUserId(Long userId);

    /**
     * 判断用户是否收藏该帖子
     *
     * @param userId 用户id
     * @param postId 帖子id
     * @return Boolean
     */
    Boolean isLike(Long userId, Long postId);

    /**
     * 新增帖子&用户收藏信息
     *
     * @param postStarSaveVO 帖子&收藏信息新增/修改请求体
     * @return Result
     */
    Result insertPostUser(PostStarSaveVO postStarSaveVO);

    /**
     * 修改帖子&用户收藏信息
     *
     * @param postStarSaveVO 帖子&收藏信息新增/修改请求体
     * @return Result
     */
    Result updatePostUser(PostStarSaveVO postStarSaveVO);

    /**
     * 按主键ids批量删除帖子&用户收藏信息
     *
     * @param ids 主键ids
     * @return Result
     */
    Result deleteBatchByIds(List<Long> ids);

    /**
     * 按帖子id或用户id删除帖子&用户收藏信息
     *
     * @param postId 帖子id
     * @param userId 用户id
     * @return Result
     */
    Result deleteByPostIdAndUserId(Long postId, Long userId);

}

